<?php
require_once 'AdminController.php';
/**
 * 
 * Classe referente aos profissionais do site
 * @author Ramon Moraes
 *
 */
class Profissionais extends AdminController{
	
	/**
	 * 
	 * Construtor da classe
	 * @access public
	 * @method __construct
	 */
	public function __construct(){
		
		parent::__construct();
	}
	
	/**
	 * Função padrão, carrega a view da controller genérica
	 * @see AdminController::index()
	 */
	public function index(){
		
		parent::index('profissionais');
	}
	
	/**
	 * 
	 * Função para carregar página de cadastrar profissionais
	 * @access public
	 * @method cadastro
	 */
	public function cadastro($pag=1, $limit=10){
		
		if(!$this->isLogged()){
			redirect('admin/administradores/login');
		}
		
		$indices = array(
			'Id',
			'Nome',
			'Email',
			'Profissão',
			'Data Nascimento'
		);
		
		$user = new Usuario();
		$user->order_by('id', 'desc')->get($limit, ($pag - 1) * $limit);
		
		$dados = array();
		foreach($user->all as $u){
			$dados[] = $u->getArrayDadosAdmin();
		}
		
		$p2 = new Usuario();
		$total = $p2->where('flag', 'ATIVO')->count();
		$numPaginas = ceil($total / $limit);
		if($numPaginas == 0){
			$numPaginas = 1;
		}
		
		$paginacao = array(
			'paginaAtual' 		=> $pag,
			'itensPorPagina'	=> $limit,
			'totalPaginas'		=> $numPaginas,
			'link'				=> 'admin/' . $this->router->fetch_class() . '/' . $this->router->fetch_method() . '/'
		);
		
		$this->setData('colunas', $indices);
		$this->setData('linhas', $dados);
		$this->setData('paginacao', $paginacao);
		if($this->sessao->userdata('cadastroSucesso', true)){
			$this->setData('cadastroSucesso', $this->sessao->userdata('cadastroSucesso', true));
			$this->sessao->unset_userdata('cadastroSucesso');
		}
		
		$this->loadView('admin/profissionais/index');
	}
	
	/**
	 * 
	 * Função para exluir um profissional
	 * @param int $id
	 * @access public
	 * @method excluir
	 */
	public function excluir($id){
		$user = new Usuario();
		$user->where('id', $id)->get();
		$user->delete();
		redirect('admin/profissionais');
	}
	
	/**
	 * 
	 * Função para salvar um profissional
	 * @param int $id
	 * @access public
	 * @method salvar
	 */
	public function salvar($id=null){
		
		if(isset($_POST['nome']) && $_POST['nome'] != '' && isset($_POST['sobrenome']) && $_POST['sobrenome'] != '' && isset($_POST['email']) && $_POST['email'] != '' && isset($_POST['profissao']) && $_POST['profissao'] != '' && isset($_POST['area']) && $_POST['area'] != '' && isset($_POST['datanascimento']) && $_POST['datanascimento'] != ''){
			$user = new Usuario();
			
			if($id != null){
				$user->where('id', $id)->get();
			}

			$user->nome = $_POST['nome'];
			$user->sobrenome = $_POST['sobrenome'];
			$user->email = $_POST['email'];
			$user->profissao = $_POST['profissao'];
			$user->area = $_POST['area'];
			
			$data = explode('/', $_POST['datanascimento']);
			$user->datanascimento = $data[2] . '-' . $data[1] . '-' . $data[0];
			
			$user->save();
			redirect('admin/profissionais/cadastroSucesso');
		}
		redirect('admin/profissionais/cadastroErro');
	}
	
	/**
	 * 
	 * Função para o caso de sucesso na inserção ou alteração de um registro
	 * @access public
	 * @method cadastroSucesso
	 */
	public function cadastroSucesso(){
		
		$this->sessao->set_userdata('cadastroSucesso', true);
		$this->index();
	}
	
	/**
	 * 
	 * Função para o caso de erro na inserção ou alteração de um registro
	 * @param String $erro
	 * @access public
	 * @method cadastroErro
	 */
	public function cadastroErro($erro=null){
		
		$this->sessao->set_userdata('cadastroSucesso', false);
		$this->index();
	}
	
}